package persistencia;

/*
 * Creado el May 19, 2010
 *
 * TODO Para cambiar la plantilla de este archivo generado, vaya a
 * Ventana - Preferencias - Java - Estilo de c�digo - Plantillas de c�digo
 */


import java.sql.*;
import javax.naming.InitialContext;
import javax.sql.DataSource;

/**
 * @author lpineda
 *
 * TODO Para cambiar la plantilla de este comentario generado, vaya a
 * Ventana - Preferencias - Java - Estilo de c�digo - Plantillas de c�digo
 */
public class ConnectionFactory {
	private static final String jdni="java:/comp/env/jdbc/trainingswitz";
	public ConnectionFactory(){
		
	}
	
	public static Connection  getConnection() throws SQLException{
	   Connection con=null;
	   try{
	   	  InitialContext ini= new InitialContext();
	   	  DataSource ds= (DataSource) ini.lookup(jdni);
	      con=ds.getConnection();
	   }catch(Exception e){
		   
	   	  e.printStackTrace();
	   	  throw new SQLException(e.getMessage());
	   }	
	   return con;
	}
	
	public static void closeConnection(Connection con) throws SQLException{
	   try{
	   	 if(con!=null && !con.isClosed()){
	   	   con.close();	
	   	 }
	   }catch(SQLException e){
	   	  e.printStackTrace();
	   }	
	}
	public static Connection  getConnectionTransaction() throws SQLException{
		   Connection con=null;
		   try{
		   	  InitialContext ini= new InitialContext();
		   	  DataSource ds= (DataSource) ini.lookup(jdni);
		      con=ds.getConnection();
		      con.setAutoCommit(false);
		   }catch(Exception e){
			   
		   	  e.printStackTrace();
		   	  throw new SQLException(e.getMessage());
		   }	
		   return con;
		}
		
		public static void closeConnectionTransaction(Connection con,boolean commit) throws SQLException{
		   try{
			 if(commit){
				 con.commit();
			 }
			 else
				 con.rollback();
		   	 if(con!=null && !con.isClosed()){
		   	   con.close();	
		   	 }
		   }catch(SQLException e){
		   	  e.printStackTrace();
		   }	
		}

}
